const AdminModel = require("../models/admin");
const userModel = require("../models/user");

let index = async ctx=>{
    let data = await userModel.find({});
    await ctx.render('index',{data:data});
}

let admin = async ctx=>{
    await ctx.render("admin");
}
// 渲染注册页面
let register = async ctx=>{
    await ctx.render("register");
}
// 登录
let doAdmin = async ctx=>{
    //从post请求中获取数据
    let{user,pwd } = ctx.request.body;
    let data = await AdminModel.find({name:user,pwd:pwd});
    console.log(data)
    if(data.length> 0) {
        ctx.cookies.set("name",user,{maxAge:1000*60*60})
        ctx.redirect("/home");
    } else {
        ctx.body = "<script>alert('用户名或密码不正确');location.href='/login' </script>"
    }
}
// 注册
let doRegister = async ctx=>{
    //获取注册输入的name,pwd
    let{name,pwd} = ctx.request.body;
    //到数据库中查询是否存在
    let userdata = await AdminModel.find({name:name});
    // 如果存在就去登录
    if(userdata.length > 0){
        ctx.body ="<script>alert('您已经注册过了,请登录');location.href='/login'</script>"
    } else {
        //不存在就注册
         // 保存到数据库   
        let data = new AdminModel({name,pwd});
        data.save(err=>{
            if(err) throw err;
        })
        ctx.body= "<script>alert('注册成功，请登录');location.href='/login'</script>"
    }
}
// 后台页面
let home = async  ctx=>{
    /* 进入首页的时候作一个登录判断 登录了直接进入产品页面 没有登录继续在登录页面 */
    if(ctx.cookies.get("name")){
        let data = await userModel.find({});
        await ctx.render('home',{data:data});
    } else {

        // 渲染login.js页面
        await ctx.render("login");
    }
}
//删除数据
let doDelete = async ctx=>{
    // 1.从url中获取id
    let id = ctx.request.query.id;
    //2.根据id,删除数据库中对应的数据
    await userModel.deleteOne({_id:id});
    //3. 跳转到首页
    await ctx.redirect("/home");
}
let edit = async ctx=>{
    // 1.从url中获取id值
    let id = ctx.request.query.id;
    //2.根据id从数据库中取到数据
    let data = await userModel.find({_id:id});

    //3.把数据携带数据渲染edit.html页面
    await ctx.render("edit",{data:data[0]});
}
let doEdit = async ctx=>{
    
     // 获取数据
     let {id,name,avatar,description,backgroundUrl,motto,site} = ctx.request.body;
     // 跟新数据
     await userModel.updateMany({_id:id},{name,avatar,description,backgroundUrl,motto,site});
     await ctx.redirect("/home");

}
// 渲染增加页面
let add = async ctx=>{
    await ctx.render('add');  
}
//添加数据
let doAdd = async ctx=>{
    // 1.从post请求中获取数据，并把name,dex,result筛选出来
    let {name, avatar,backgroundUrl,description,motto,site} = ctx.request.body;
    let data = new userModel({
        name,
        avatar,
        backgroundUrl,
        description,
        motto,
        site
    })
    //2. 把数据添加到数据库中
    data.save(err=>{
        if(err) throw(err)
    })
    //3.跳转到首页
    await ctx.redirect("/index")
}
module.exports= {
    index,
    doAdmin,
    admin,
    register,
    doRegister,
    home,
    doDelete,
    edit,
    doEdit,
    add,
    doAdd
}